import XLSX from 'xlsx'
import fs from 'fs'
import path from 'path'
import { fileURLToPath } from 'url'

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)

async function convertJsonToExcel() {
  try {
    // 读取 JSON 文件
    const jsonPath = path.resolve(__dirname, 'xhs.json')
    const jsonData = JSON.parse(fs.readFileSync(jsonPath, 'utf-8'))

    // 转换数据格式
    const worksheetData: any[] = []
    
    // 遍历每个关键词的结果
    for (const [keyword, items] of Object.entries(jsonData)) {
      // 将每个项目转换为一行数据，并添加关键词列
      (items as any[]).forEach((item: any) => {
        worksheetData.push({
          '关键词': keyword,
          '标题': item.display_title,
          'ID': item.id,
          '链接': item.url
        })
      })
    }

    // 创建工作簿
    const workbook = XLSX.utils.book_new()
    
    // 创建工作表
    const worksheet = XLSX.utils.json_to_sheet(worksheetData)
    
    // 设置列宽
    const colWidths = [
      { wch: 10 },  // 关键词列宽
      { wch: 50 },  // 标题��宽
      { wch: 30 },  // ID列宽
      { wch: 100 }, // 链接列宽
    ]
    worksheet['!cols'] = colWidths

    // 将工作表添加到工作簿
    XLSX.utils.book_append_sheet(workbook, worksheet, '小红书数据')

    // 生成 Excel 文件
    const excelPath = path.resolve(__dirname, 'xhs_data.xlsx')
    XLSX.writeFile(workbook, excelPath)

    console.log('Excel 文件已生成：', excelPath)
  } catch (error) {
    console.error('转换过程中发生错误：', error)
  }
}

// 执行转换
convertJsonToExcel() 